@wstallwood said in OSError: [Errno 11] EAGAIN:
https://forum.pycom.io/topic/502/socket-send-msg-timeout
Hi,
in order to catch an error without crashing you can just wrap the call with:
try:
s.send(data)
except OSError as e:
if e.args[0] == 11:
# EAGAIN error occurred, add your retry logic here
A list of what all the error numbers mean can be found in this file: https://github.com/pycom/pycom-micropython-sigfox/blob/5bed5e9a84bb1abfc4d59476f3f62b38920c5eda/py/mperrno.h
Onto why this error occurs, having a look at the lora source code you can find that this error is raised here:
https://github.com/pycom/pycom-micropython-sigfox/blob/master/esp32/mods/modlora.c#L2082
This error is raised if send_lorawan returns zero, which can happen for two reasons, the message was added to the queue (which is what I believe you are refering to with the duty cycle limiting) or there was a LORA_STATUS_ERROR.